package com.investment.advisor.service;

import com.investment.advisor.dto.PortfolioDTO;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface PortfolioService {
    List<PortfolioDTO> getAllPortfolios();
    PortfolioDTO getPortfolioById(Long id);
    List<PortfolioDTO> searchPortfolios(String keyword);
    List<PortfolioDTO> getPortfoliosByStrategyId(Long strategyId);
    List<PortfolioDTO> getPortfoliosByFundId(Long fundId);
    List<PortfolioDTO> getPortfoliosByCreator(String creator);
    PortfolioDTO createPortfolio(PortfolioDTO portfolioDTO);
    PortfolioDTO updatePortfolio(Long id, PortfolioDTO portfolioDTO);
    void deletePortfolio(Long id);
    PortfolioDTO updatePortfolioFunds(Long portfolioId, Map<Long, BigDecimal> fundWeights);
    PortfolioDTO addFundToPortfolio(Long portfolioId, Long fundId, BigDecimal weight);
    PortfolioDTO removeFundFromPortfolio(Long portfolioId, Long fundId);
    PortfolioDTO updateFundWeight(Long portfolioId, Long fundId, BigDecimal weight);
} 